The invention generally relates to the field of computing. More particularly, the invention relates to systems and methods for coordinating communications between an application and various communication devices.
It is not uncommon today for people to use several communication devices. For example, a user may have a home computer, a work laptop, a wireless phone, and a personal digital assistant. Users typically utilize one of these communication devices at a time. For example, a user may send and receive e-mails via their personal digital assistant while commuting to work and then send and receive e-mails via their laptop once arriving at work. To use the personal digital assistant, the user typically begins a session with an e-mail application and the session continues until the user selects to end the session (e.g., at the end of the commute). Upon arriving at work, the user may begin another session between their work laptop and the e-mail application. Such session beginning and ending may be inconvenient for a user.
Each communication device typically has a different set of output capabilities. For example, a laptop computer typically is capable of displaying text and color graphics (e.g., color graphical images and color video). A personal digital assistant typically is capable of displaying text and a wireless telephone is typically capable of displaying a small amount of text and producing audible sounds. Therefore, an e-mail message including a video file may be best sent to a computer rather than being sent to a wireless telephone. Despite the differing output capabilities of the various types of communication devices, present systems and methods do not have the capability to coordinate where to send e-mails and other digital content items. This is typically because one communication device establishes a single session with one application. In such a case, communication is limited to communicating digital content items between that particular device and that particular application.
Moreover, because different types of communication devices may have different output capabilities, applications typically include a significant amount of programming to be able to properly display digital content items on different types of communication devices. For example, an application may include programming code to properly display digital content items on a computer, more programming code to properly display digital content items on a personal digital assistant, and even more programming to properly display digital content items on a wireless phone. Also, applications typically include programming code that queries a communication device to determine its output capabilities. For example, an application may query a browser of a computer to determine its output capabilities before sending a digital content item to the browser. Such programming code may make an application very complex to write and maintain.
Further, users may have a preference for specific types of content regardless of the communication device being used. For example, a user of a personal computer with a relatively slow network connection (e.g., 56 kbps) may desire to eliminate animations or graphics completely when retrieving information over a network (e.g., the Internet). Alternatively, a user of a color graphics enabled PDA may desire gray scale graphics to reduce processing burden on the device.
In view of the foregoing, there is a need for methods and systems for coordinating communication between several types of communication devices and user preferences.